package cn.iocoder.yudao.module.pay.controller.admin.order.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 汇付对帐订单分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class HuifuOrderPageReqVO extends PageParam {

    @Schema(description = "付款人标识", example = "4946")
    private String userTagId;

    @Schema(description = "渠道商号", example = "14102")
    private String huifuId;

    @Schema(description = "商户号", example = "12390")
    private String sysId;

    @Schema(description = "商户简称", example = "张三")
    private String sysShortName;

    @Schema(description = "商户名称", example = "芋艿")
    private String sysIdName;

    @Schema(description = "产品号")
    private String productNumber;

    @Schema(description = "汇付终端id", example = "9872")
    private String huiTerminalId;

    @Schema(description = "终端名称", example = "王五")
    private String huiTerminalName;

    @Schema(description = "终端类型", example = "1")
    private String huiTerminalType;

    @Schema(description = "凭证号")
    private String pzNumber;

    @Schema(description = "汇付订单号", example = "24223")
    private String huifuOrderId;

    @Schema(description = "外部订单号", example = "10958")
    private String outsideOrderId;

    @Schema(description = "交易类型", example = "2")
    private String exchangeType;

    @Schema(description = "交易方式订单号")
    private String exchangeWaySeq;

    @Schema(description = "交易方式 微信支付宝等")
    private String exchangeWay;

    @Schema(description = "商品描述")
    private String productRemarks;

    @Schema(description = "交易金额")
    private String exchangeMoney;

    @Schema(description = "手续费")
    private String handlingFee;

    @Schema(description = "退款金额")
    private String refundAmount;

    @Schema(description = "交易状态", example = "1")
    private String payStatus;

    @Schema(description = "交易时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] exchangeTime;

    @Schema(description = "付款银行")
    private String payBank;

    @Schema(description = "借贷标识")
    private String loanTag;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}